#ifndef     IMGMAP_H_
# define    IMGMAP_H_

# include <SFML/system.hpp>
# include <SFML/window.hpp>
# include <SFML/graphics.hpp>
# include <list>
# include <utility>
# include "GameObject.h"
# include "utils.hpp"
# include "IMap.h"
# include "ObjManager.hpp"
# include "Graphics/MainGraphic.h"

class ImgMap : public IMap
{
public:
    ImgMap(MainGraphic & mg) : _mg(mg), _size(), _objs() {}
    virtual ~ImgMap();
    virtual void loadMap(std::string const & filename, std::vector<std::string> const & back);
    virtual vector getSize();
    virtual void collision(GameObject & obj, float const elapsedTime) const;

private:
    typedef std::list<GameObject*> objlist;
    typedef objlist::iterator objit;

private:
    MainGraphic             & _mg;
    vector                    _size;
    objlist                   _objs;
};

#endif   /* IMGMAP_H_ */
